package com.yxinsur.imc.business.excel;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 保单导入模板实体 OrderTemplate
 *
 * @author imc
 */
@Data
public class OrderTemplate implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 保单序号 */
    @Excel(name = "序号*", cellType = Excel.ColumnType.NUMERIC, prompt = "数据行请保证序号不为空")
    private String index;

    @Excel(name = "结算机构名称",prompt = "结算机构不能为空")
    private String settleOrgName;

    /** 保单号，合同号 */
    @Excel(name = "保单号*", type = Excel.Type.IMPORT)
    private String policyCode;

    /** 投保单号 */
    @Excel(name = "投保单号*", type = Excel.Type.IMPORT)
    private String proposalCode;

    /** 保单服务人员 */
    @Excel(name = "代理人工号*", type = Excel.Type.IMPORT, prompt = "出单代理人的工号代码")
    private String brokerCode;

    /** 投保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投保日期*", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date applyDate;

    /** 承保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "承保日期*", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date insureDate;

    /** 保单生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期*", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date effectiveDate;

    /** 保单失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date expiredDate;

    /** 客户回执签收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "客户回执签收时间", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date custAckDate;

    /** 回执录入时间(回执录入系统时间) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "回执录入时间", width = 30, dateFormat = "yyyy-MM-dd", type = Excel.Type.IMPORT, prompt = "格式为yyyy-mm-dd")
    private Date ackDate;
    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    //险种信息

    /** 险种代码 */
    @Excel(name = "险种内部代码*", prompt = "险种代码不能为空")
    private String insCode;

    /** 险种名称 */
    @Excel(name = "险种名称")
    private String riskName;

    /** 方案名称 */
    @Excel(name = "方案名称")
    private String scheme;

    /** 主附险标识 */
    @Excel(name = "主附险标识*",dictType="risk_type",comboDicType = "risk_type")
    private String riskType;

    /** 险种保费-首年 */
    @Excel(name = "险种保费-首年*")
    private BigDecimal prem;

    /** 险种基本保额 */
    @Excel(name = "险种基本保额")
    private BigDecimal amount;

    /** 保障年期类型 */
    @Excel(name = "保障年期类型*",dictType="coverage_period",comboDicType = "coverage_period")
    private String coveragePeriodEnum;

    /** 保障期限 */
    @Excel(name = "保障期限*",prompt="例：输入数字10即可，不必类似10年这种")
    private String coveragePeriodValue;

    /** 缴费年期类型 */
    @Excel(name = "缴费年期类型*",dictType="charge_period",comboDicType = "charge_period")
    private String chargePeriodEnum;

    /** 缴费期限 */
    @Excel(name = "缴费期限*",prompt="例：输入数字10即可，不必类似10年这种")
    private String chargePeriodValue;

    /** 缴费频率类型 */
    @Excel(name = "缴费频率类型*",dictType="charge_interval",comboDicType = "charge_interval")
    private String chargeIntervalEnum;

    /** 领取年龄*/
    @Excel(name = "领取年龄",prompt = "领取年龄影响费率时为必填项",scale = 0)
    private String pensionAge;

    /** 是否自动续保Y N */
    @Excel(name = "是否自动续保",comboDicType = "sys_yes_no",dictType = "sys_yes_no")
    private String autoRenewalEnum;


    /** 银行户名(姓名) */
    @Excel(name = "银行户名(姓名)", type = Excel.Type.IMPORT)
    private String accName;

    /** 银行名 */
    @Excel(name = "缴费银行", comboDicType = "bank_info",dictType = "bank_info",type = Excel.Type.IMPORT)
    private String bank;

    /** 银行账号 */
    @Excel(name = "银行账号", type = Excel.Type.IMPORT)
    private String account;

    //投保人信息

    /** 姓名/法人/负责人 */
    @Excel(name = "投保人姓名*")
    private String fullNameApplicant;

    /** 性别 */
    @Excel(name = "投保人性别",comboDicType = "sys_user_sex",dictType = "sys_user_sex")
    private String genderApplicant;

    /** 职业名称 */
    @Excel(name = "投保人职业名称")
    private String occNameApplicant;

    /** 证件类型 */
    @Excel(name = "投保人证件类型",comboDicType = "certi_type",dictType = "certi_type")
    private String certiTypeApplicant;

    /** 证件号 */
    @Excel(name = "投保人证件号")
    private String certiCodeApplicant;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投保人生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdayApplicant;

    /** 证件止期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投保人证件止期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certiExpiryDateApplicant;

    /** 联系电话 */
    @Excel(name = "投保人联系电话")
    private String mobileApplicant;

    /** 省 */
    @Excel(name = "投保人省")
    private String provinceApplicant;

    /** 市 */
    @Excel(name = "投保人市")
    private String cityApplicant;

    /** 区 */
    @Excel(name = "投保人区")
    private String countyApplicant;

    /** 通讯地址 */
    @Excel(name = "投保人通讯地址")
    private String mailAddrApplicant;

    /** 收入(元) */
    @Excel(name = "投保人收入(万元)")
    private Long incomeApplicant;

    /** 身高 */
    @Excel(name = "投保人身高（cm）")
    private String heightApplicant;

    /** 体重 */
    @Excel(name = "投保人体重（cm）")
    private String weightApplicant;

    //被保人

    /** 与投保人关系 */
    @Excel(name = "与投保人关系*",comboDicType = "order_person_relation",dictType = "order_person_relation")
    private String relationWithApplicant;

    /** 姓名/法人/负责人 */
    @Excel(name = "被保人姓名*")
    private String fullNameInsurant;

    /** 性别 */
    @Excel(name = "被保人性别",comboDicType = "sys_user_sex",dictType = "sys_user_sex")
    private String genderInsurant;

    /** 职业名称 */
    @Excel(name = "被保人职业名称")
    private String occNameInsurant;

    /** 证件类型 */
    @Excel(name = "被保人证件类型",comboDicType = "certi_type",dictType = "certi_type")
    private String certiTypeInsurant;

    /** 证件号 */
    @Excel(name = "被保人证件号")
    private String certiCodeInsurant;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "被保人生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdayInsurant;

    /** 证件止期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "被保人证件止期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certiExpiryDateInsurant;

    /** 联系电话 */
    @Excel(name = "被保人联系电话")
    private String mobileInsurant;

    /** 省 */
    @Excel(name = "被保人省")
    private String provinceInsurant;

    /** 市 */
    @Excel(name = "被保人市")
    private String cityInsurant;

    /** 区 */
    @Excel(name = "被保人区")
    private String countyInsurant;

    /** 通讯地址 */
    @Excel(name = "被保人通讯地址")
    private String mailAddrInsurant;

    /** 收入(元) */
    @Excel(name = "被保人收入(万元)")
    private Long incomeInsurant;

    /** 身高 */
    @Excel(name = "被保人身高（cm）")
    private String heightInsurant;

    /** 体重 */
    @Excel(name = "被保人体重（cm）")
    private String weightInsurant;


    // 受益人

    /** 是否法定受益人 */
    @Excel(name = "是否法定受益人*",comboDicType = "sys_yes_no",dictType = "sys_yes_no")
    private String isLegalBeneficiary;

    /** 姓名/法人/负责人 */
    @Excel(name = "受益人1姓名")
    private String fullNameBeneficiary1;

    /** 性别 */
    @Excel(name = "受益人1性别",comboDicType = "sys_user_sex",dictType = "sys_user_sex")
    private String genderBeneficiary1;

    /** 证件类型 */
    @Excel(name = "受益人1证件类型",comboDicType = "certi_type",dictType = "certi_type")
    private String certiTypeBeneficiary1;

    /** 证件号 */
    @Excel(name = "受益人1证件号")
    private String certiCodeBeneficiary1;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "受益人1生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdayBeneficiary1;

    /** 受益顺序 */
    @Excel(name = "受益人1受益顺序")
    private String benefitOrderBeneficiary1;

    /** 收益比例 */
    @Excel(name = "受益人1收益比例")
    private String benefitRateBeneficiary1;

    /** 与被保险人关系 */
    @Excel(name = "受益人1与被保险人关系",comboDicType = "order_person_relation",dictType = "order_person_relation")
    private String relationWithInsurantBeneficiary1;

    /** 姓名/法人/负责人 */
    @Excel(name = "受益人2姓名")
    private String fullNameBeneficiary2;

    /** 性别 */
    @Excel(name = "受益人2性别",comboDicType = "sys_user_sex",dictType = "sys_user_sex")
    private String genderBeneficiary2;

    /** 证件类型 */
    @Excel(name = "受益人2证件类型",comboDicType = "certi_type",dictType = "certi_type")
    private String certiTypeBeneficiary2;

    /** 证件号 */
    @Excel(name = "受益人2证件号")
    private String certiCodeBeneficiary2;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "受益人2生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdayBeneficiary2;

    /** 受益顺序 */
    @Excel(name = "受益人2受益顺序")
    private String benefitOrderBeneficiary2;

    /** 收益比例 */
    @Excel(name = "受益人2收益比例")
    private String benefitRateBeneficiary2;

    /** 与被保险人关系 */
    @Excel(name = "受益人2与被保险人关系",comboDicType = "order_person_relation",dictType = "order_person_relation")
    private String relationWithInsurantBeneficiary2;

    /** 姓名/法人/负责人 */
    @Excel(name = "受益人3姓名")
    private String fullNameBeneficiary3;

    /** 性别 */
    @Excel(name = "受益人3性别",comboDicType = "sys_user_sex",dictType = "sys_user_sex")
    private String genderBeneficiary3;

    /** 证件类型 */
    @Excel(name = "受益人3证件类型",comboDicType = "certi_type",dictType = "certi_type")
    private String certiTypeBeneficiary3;

    /** 证件号 */
    @Excel(name = "受益人3证件号")
    private String certiCodeBeneficiary3;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "受益人3生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdayBeneficiary3;

    /** 受益顺序 */
    @Excel(name = "受益人3受益顺序")
    private String benefitOrderBeneficiary3;

    /** 收益比例 */
    @Excel(name = "受益人3收益比例")
    private String benefitRateBeneficiary3;

    /** 与被保险人关系 */
    @Excel(name = "受益人3与被保险人关系",comboDicType = "order_person_relation",dictType = "order_person_relation")
    private String relationWithInsurantBeneficiary3;



}
